package com.scm.manager;

import com.scm.common.core.domain.entity.SysUser;
import com.scm.dto.req.order.OrderImportBean;
import com.scm.dto.resp.invent.ScmInventoryOutDetailDo;
import com.scm.dto.resp.order.OrderDetailDo;
import com.scm.dto.resp.order.QueryOrderZhipairenResp;
import com.scm.dto.resp.product.ProductSyncStatus;
import com.scm.persist.model.ScmInventoryOut;
import com.scm.persist.model.ScmOrder;

import java.util.List;


/**
 * 订单主Manager业务层处理,设计订单多server交互逻辑在manager层聚合
 *
 * @author reptilemanager
 * @date 2024-02-08
 */
public interface OrderManager {


    public void importOmsOrder(SysUser sysUser, List<OrderImportBean> orderImportModelList );

    public OrderDetailDo getOrderDetailById (Long orderId);

    public void saveBaobei (String omsOrderId, SysUser loginSysUser);

    void uploadCredentials(Long omsOrderId,SysUser loginSysUser,String filePath );
    void uploadWaitReceipt(Long omsOrderId,SysUser loginSysUser,String filePath,String orderType );

    void uploaduploadInvoice(Long omsOrderId,SysUser loginSysUser,String filePath,String orderType );

    public QueryOrderZhipairenResp queryOrderZhipairen(Long id,SysUser loginSysUser);

    public void confirmOrder(Long id,SysUser loginSysUser);

    public List<ProductSyncStatus> syncScmOrderProduct(SysUser loginSysUser, Long orderId);

    public int updateScmOrder(SysUser loginSysUser,ScmOrder scmOrder);

    //订单转出库单
    public ScmInventoryOut orderToOutInventory(Long id, SysUser loginSysUser);

    //订单转出库单-获取商品明细信息
    public  List<ScmInventoryOutDetailDo> queryOrderProductToOutInventory(Long orderId, SysUser loginSysUser);





}
